Encryption enables data, typically called “plain text,” to be coded into encrypted data, commonly called “cipher text.” Without knowing particular keys, called cipher keys, cipher text cannot be converted back to plain text or plain text cannot be converted into cipher text.
The Advanced Encryption Standard (AES) defines techniques for encrypting and decrypting data. See “Specification for the Advanced Encryption Standard (AES),” Federal Information Processing Standard (FIPS) Publication 197 (2001), the disclosure of which is hereby incorporated by reference. The techniques defined by the AES are very important parts of many current computerized encryption systems, which encrypt everything from electronic mail to secret personal identification numbers (PINs).
The AES defines encryption and decryption techniques where a cipher key is used to generate a number of round keys. The round keys are used during encryption of plain text and decryption of cipher text. The AES also defines techniques for using different sizes of the cipher key and round keys during encryption and decryption. The AES defines key sizes of 128, 192, and 256 bits. Longer key sizes are beneficial, as the larger size equates with a longer period for one to perform a “brute force” code breaking approach, where each possible cipher key is tried until a correct decryption of the cipher text occurs.
While the AES defines very effective encryption and decryption techniques, there are some problems with the way keys such as round keys are generated. A need therefore exists for improved techniques for generating keys such as round keys.